package io.codegeneratetool.core;

import javax.persistence.Enumerated;
import javax.persistence.Transient;

import io.codegenerate.core.annotations.Name;

/**代码生成的必备参数
 * @author jifsu
 *
 */
public class CodeGenerateOptions {
 
	
	/**
	 *  项目名称,注意,这个名称会成为package的一部分
	 */
	@Name("项目名称")
	private String projectName="demo";
	
	/**
	 *  包名称,生成的代码将按照这个包结构,分为dao/impl service/impl , web/actions
	 */
	@Name(value="包名",descr="类似cn.vs9,只要写总的包名")
	private String rootPackageName="cn.vs9";
	
	/**
	 *  dao的名字,有人要叫dal
	 */
	@Name(value="DAO的叫法")
	private String daoName = "dao";
	
	/**
	 * service的叫法,有人要叫 bll
	 */
	@Name(value="Service的叫法")
	private String serviceName = "service";
	
	/**
	 *  action的叫法,有人叫controller,有人叫ui,爱谁谁
	 */
	@Name(value="Action包的叫法",descr="如果是struts2,可能叫actions,spring则叫controllers")
	private String actionName = "controllers";

	/**
	 *  页面存放的位置,有人喜欢放在WEB-INF/views
	 *  有人可能就放在/pages  
	 */
	@Name(value="页面文件放哪里",descr="有人喜欢放/pages,有人则放在WEB-INF/views")
	private String pageFolder = "WEB-INF/views";
	
	/**
	 *  javascript 放在那个目录?有人喜欢叫js
	 */
	@Name(value="JS文件放哪里",descr="有人喜欢放/scripts,有人则放在/js")
	private String jsFoler = "/scripts/user";
	
	
	/**
	 *  用于生成的action(SpringController的根路径,默认为/opt/user)
	 */
	@Name(value="action文件放哪个包",descr="有人不喜欢分包,有人则放在/opt 或者/user  /data 等")
	private String actionNamespace="/opt/user";

	/**
	 *  当前操作的表信息,临时变量,根据实际的参数进行变更
	 */
	@Transient
	private String currentTableName;
	
	
	 
 
	/**
	 * @return the projectName
	 */
	public String getProjectName() {
		return projectName;
	}


	/**
	 * @param projectName the projectName to set
	 */
	public void setProjectName(String projectName) {
		this.projectName = projectName;
	}


	/**
	 * @return the rootPackageName
	 */
	public String getRootPackageName() {
		return rootPackageName;
	}


	/**
	 * @param rootPackageName the rootPackageName to set
	 */
	public void setRootPackageName(String rootPackageName) {
		this.rootPackageName = rootPackageName;
	}


	/**
	 * @return the daoName
	 */
	public String getDaoName() {
		return daoName;
	}


	/**
	 * @param daoName the daoName to set
	 */
	public void setDaoName(String daoName) {
		this.daoName = daoName;
	}


	/**
	 * @return the serviceName
	 */
	public String getServiceName() {
		return serviceName;
	}


	/**
	 * @param serviceName the serviceName to set
	 */
	public void setServiceName(String serviceName) {
		this.serviceName = serviceName;
	}


	/**
	 * @return the actionName
	 */
	public String getActionName() {
		return actionName;
	}


	/**
	 * @param actionName the actionName to set
	 */
	public void setActionName(String actionName) {
		this.actionName = actionName;
	}


	/**
	 * @return the pageFolder
	 */
	public String getPageFolder() {
		return pageFolder;
	}


	/**
	 * @param pageFolder the pageFolder to set
	 */
	public void setPageFolder(String pageFolder) {
		this.pageFolder = pageFolder;
	}


	/**
	 * @return the jsFoler
	 */
	public String getJsFoler() {
		return jsFoler;
	}


	/**
	 * @param jsFoler the jsFoler to set
	 */
	public void setJsFoler(String jsFoler) {
		this.jsFoler = jsFoler;
	}


	/**
	 * @return the actionNamespace
	 */
	public String getActionNamespace() {
		return actionNamespace;
	}


	/**
	 * @param actionNamespace the actionNamespace to set
	 */
	public void setActionNamespace(String actionNamespace) {
		this.actionNamespace = actionNamespace;
	}


	/**
	 * @return the currentTableName
	 */
	public String getCurrentTableName() {
		return currentTableName;
	}


	/**
	 * @param currentTableName the currentTableName to set
	 */
	public void setCurrentTableName(String currentTableName) {
		this.currentTableName = currentTableName;
	}
	
	
	
	
 
}
